﻿#ifndef RELATEDLG_H
#define RELATEDLG_H

#include "db_cfg_g_def.h"
#include "DbCfgFun.h"
#include <QDialog>
#include "ui_relatedlg.h"
#include <QTreeWidgetItem>
#include <QListWidgetItem>
#include <QTimer>

class RelateDlg : public QDialog , public Ui_RelateDlg
{
    Q_OBJECT
public:
    RelateDlg(cColumn_Info *pColumnInfo, unsigned int OldRelateId, unsigned int CurRecordId, QWidget *parent = 0);
    ~RelateDlg();

	int GetRelateData(unsigned int &RelateId, QString &ItemText);

	int GetRecordId(int &RecordId1, int &RecordId2,int &RecordId3);
	
protected:
/*	函数：	InitDlgShow();
	用途：	初始化显示
	输入：
	返回：	*/
	void	InitDlgShow();

/*	函数：	InitTreeShow();
	用途：	初始化树的显示
	输入：
	返回：	*/
	void	InitTreeShow(int AppType, int TableId);

/*	函数：	InitListShow();
	用途：	初始化LIST的显示
	输入：
	返回：	*/
	void	InitListShow(int ParentId);

/*	函数：	InitTreeDeviceItem();
	用途：	初始化树设备的显示
	输入：
	返回：	*/
	void	InitTreeDeviceItem(int ParentId, QTreeWidgetItem *pParentItem);

/*	函数：	SetCurSltContShow();
	用途：	显示当前的选择
	输入：
	返回：	*/
	void	SetCurSltContShow(int AppType, int TableId, int CurRelateId);

/*	函数：	SetYxList();
	用途：	显示当前选择遥信的列表
	输入：
	返回：	*/
	void	SetYxList(int RecordNum, char *buff);

/*	函数：	SetYkList();
	用途：	显示当前选择遥控的列表
	输入：
	返回：	*/	
	void	SetYkList(int RecordNum, char *buff);

	/*	函数：	SetTaskList();
	用途：	显示当前选择任务的列表
	输入：
	返回：	*/
	void	SetTaskList(int RecordNum, char *buff);

	/*	函数：	SetTransmitList();
	用途：	显示当前转发表的列表
	输入：
	返回：	*/
	void	SetTransmitList(int RecordNum, char *buff);
	
//	void	SetParamsYxList(int RecordNum, char *buff);
//	void	SetParamsYkList(int RecordNum, char *buff);

	//	显示当前选择遥控的列表
	void	SetParamsNetList(int RecordNum, char *buff);
/*	函数：	SetDlgTitl();
	用途：	设置对话框标题
	输入：
	返回：	*/	
	void	SetDlgTitl();

protected:
/*	函数：	SaveRelateData();
	用途：	保存关联数据
	输入：
	返回：	*/	
	void	SaveRelateData();

/*	函数：	SaveSameTableRelateInfo();
	用途：	保存同一表的相互关联
	输入：
	返回：	*/	
	int		SaveSameTableRelateInfo();
	
/*	函数：	SaveSingleRelateInfo();
	用途：	保存单一关联
	输入：
	返回：	*/	
	int		SaveSingleRelateInfo();

protected:
    void changeEvent(QEvent *e);

	

protected slots:
	//选择树
	void SelectTreeShow(QTreeWidgetItem *pItem, int ColumnNo);
	void SelectListShow(QListWidgetItem *pItem);
	void ClearRelate();
	void AffirmRelate();
	void CancelRelate();
	void OnTimerProc();


private:
	
        unsigned int			m_AppType;					//应用类型
        unsigned int			m_RelateTableId;			//关联表ID
        unsigned int			m_CurTableId;				//当前操作表
		//bool					m_bSingleCheck;				//是否单选
		bool					m_bSymmetry;				//是否对称
        unsigned int			m_NewRelateId;				//新关联
        unsigned int			m_OldRelateId;				//旧关联
        unsigned int			m_CurRecordId;				//当前记录ID
        unsigned int			m_CurColumnId;				//当前操作域
		cColumn_Info			m_ColumnInfo;				//域信息

		unsigned int			m_RltId1;
		unsigned int			m_RltId2;
		unsigned int			m_RltId3;
		QTimer					*m_pTimer;

};

#endif // RELATEDLG_H
